package main

/*
1、为什么需要channel
前面使用全局变量加锁同步来解决goroutine的通讯，但不完美
(1)主线程在等待所有goroutine全部完成的时间很难确定，这里设置的是1秒，仅仅是估算
(2)如果主线程休眠时间长了，会加长等待时间，如果等待时间断了，可能还有goroutine处于工作状态，这时也会随主线程的退出而销毁
(3)通过全局变量加锁同步来实现通讯，也并不利于多个协程对全局变量的读写操作
(4)上面种种分析都在呼唤一个新的通讯机制-channel
2、channel介绍
(1)channel本质就是一个数据结构---队列
(2)数据是先进先出
(3)线程安全，多goroutine访问时，不需要加锁，就是说channel本身就是线程安全的，多个协程操作同一个管道时，不会发生资源竞争问题
(4)channel是有类型的，一个string的channel只能存放string类型数据
*/
func main() {

}
